Communication networks are typically constructed using switching devices to provide end-to end connectivity between host computers. Often, such networks are created using switching devices, which are interconnected in some manner. Although each device included in a network has a physical identity, uniquely identifying each device based on the device's physical characteristics and location within the network is difficult. Logical identifiers, such as IP addresses, are defined to uniquely identify each device included in the network. A mechanism is used to map the physical devices to unique logical identifiers so that the defined identifiers can be used to refer to the physical devices. The type of logical identifier used depends on the type of network the physical devices connected. Often, different identifiers are used to identify the same device for different purposes.
A network that is used in high performance computing environments is constructed using switching elements, or switch boards, interconnected in a regular manner. Depending on the size of network, a varying number of switch boards are interconnected in multiple levels to form the network. The pattern of interconnection between the different levels of switches is regular and often unique for different size networks. In such networks, the switch boards need to be assigned logical board numbers to identify each switch board's position in the network topology. Such identifiers either can be assigned during the installation of the network, or may be determined by allowing the network to discover itself.
While network self discovery has advantages, the regularity of interconnection between stages poses a challenge to efficient discovery, particularly for networks with multiple intermediate stages of switches. An obstacle to network self discovery is the possibility of incorrect network wiring, or incorrect or incomplete network connections during installation.
High performance computing environments demand high reliability, high bandwidth, and low latency. Such requirements may be addressed by constructing multi-stage networks that provide multiple, distinct data paths between every pair of network endpoints, and by constructing the network so that each data path requires the same minimal number of hops. As computing demands continue to grow, networks with larger numbers of endpoints will be needed. One way for a network to support more endpoints while providing the desired bandwidth and latency characteristics is to construct switch networks with more stages of switches.
One existing method for determining the topology of a multistage network, with one intermediate stage of switches, involves a series of guesses based on the number of switch boards found in the network. Each switch board is compared to every switch board position in a theoretical topology to determine where the particular switch board is in the real topology. This method is not practical and sometimes not practicable when multiple intermediate stages are involved. Thus, there exists a need for a way to quickly discover the topology and identify the individual entities in a multi-stage network during self discovery.